Skip to content

Dotty 0.8.0 blog post #4365

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Apr 27, 2018
Merged

Conversation

allanrenucci
Copy link
Contributor

No description provided.

(e.g. no XML literals), and try to boil down Scala’s types into a smaller set of more fundamental
constructs. The theory behind these constructs is researched in
[DOT](https://infoscience.epfl.ch/record/215280), a calculus for dependent object types.
You can learn more about Dotty on our [website](https://dotty.epfl.ch).
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@odersky Can you rewrite this part now that Scala 3 is announced

@allanrenucci
Copy link
Contributor Author

@lampepfl/dotty-core Please have a look

the [IDE guide](https://dotty.epfl.ch/docs/usage/ide-support.html).


### Standalone installationSymb
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: installation

| the type test for List[String] cannot be checked at runtime
```

### Kind Polymorphism [#4108](https://github.com/lampepfl/dotty/pull/4108)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@allanrenucci Right now this is under a compiler flag -Ykind-polymorphism and it's in a sort-of limbo status (some pieces needed to use it much are missing), I'm not sure how much we want to advertise it yet?

### sbt 1 support [#3872](https://github.com/lampepfl/dotty/pull/3872)
Starting with Dotty 0.8.0, we will only support versions of sbt >= 1.1.4. Migrating to sbt 1
lets us use the new improved incremental compiler for Scala called [Zinc](https://github.com/sbt/zinc),
and enables integration with tools such as [Bloop](https://scalacenter.github.io/bloop/).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should add a sentence or two explaining to users how to migrate their builds to this release. (Basically, change project/build.properties to sbt 1.1.4, update the sbt-dotty plugin, and change usages of withDottyCompat).

@allanrenucci allanrenucci changed the title Draft Dotty 0.8.0 blog post Dotty 0.8.0 blog post Apr 27, 2018
.forEach(println(_))

// C1
// C2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are these?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's the output of the code above. Maybe we should add // Prints:

<!--more-->

This is our eighth scheduled release according to our [6-week release schedule](https://dotty.epfl.ch/docs/usage/version-numbers.html).
The [previous technology preview](https://github.com/lampepfl/dotty/releases/tag/0.7.0-RC1) simplified
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't that link to 0.7.0 final? Are they the same?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0.7.0 final has a bug fix that is not in 0.7.0-RC1, but 0.7.0-RC1 has the release notes, so I would keep it as is

### sbt 1 support [#3872](https://github.com/lampepfl/dotty/pull/3872)
Starting with Dotty 0.8.0, we will only support versions of sbt >= 1.1.4. Migrating to sbt 1
lets us use the new improved incremental compiler for Scala called [Zinc](https://github.com/sbt/zinc),
and enables integration with tools such as [Bloop](https://scalacenter.github.io/bloop/).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about:

Dotty 0.8.0-RC1 is now compatible with Zinc 1.x. Migrating to the latest version of Zinc let's us benefit from improved incremental compilation. This change means that sbt 1.1.4 or later must be used, and that integrations with tools such as Bloop are now possible.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer to put the emphasis on sbt rather than Zinc. Users don't have to know that they are using Zinc under the hood

If you are already using Dotty with sbt 0.13, follow these simple steps to upgrade:
- update sbt version to 1.1.4 in `project/build.properties`
- update sbt-dotty plugin to the latest version: `addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.2.2")`
- update usages of `.withDottyCompat()` by `.withDottyCompat(scalaVersion.value)`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

replace usage?


### Unchecked warnings [#4045](https://github.com/lampepfl/dotty/pull/4045)
Dotty now emits `unchecked` warnings like `scalac` whenever a type test is performed but cannot
safely be checked at runtime. For example:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure what safely means in this context? It reads like it'd throw an exception.

whenever a type test that cannot be completely checked at runtime is encountered.


### Improved support for SAM type [#4152](https://github.com/lampepfl/dotty/pull/4152)
This release includes fixes to SAM types that greatly improve interoperability with Java 8 lambdas.
One can now easely write Scala code that uses Java streams:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

easily

This is an easy way to try Dotty without installing anything.

### sbt
Using sbt 1.1.4 or newer, do:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that the template applies the scala version; it doesn't matter what version of the sbt launcher you have installed. I'd replace this line with

To get started with Dott using sbt, type sbt new to setup a new sbt project using Dotty:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you need to use sbt 0.13.13+ to use sbt new. However I don't want people to think that Dotty is compatible with sbt 0.13

@allanrenucci allanrenucci merged commit 4ed97e3 into scala:master Apr 27, 2018
@allanrenucci allanrenucci deleted the dotty-0.8-blogpost branch April 27, 2018 12:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants